package rkdwogus7.basic;

public class J02_Expression02 {

	
	public static void main(String[] args) {
		System.out.println( 3 + 4.5 * 2 + 27 / 8 );
		System.out.println( true || false && 3 <4 || !(5 == 7) );
		System.out.println( true || (3 < 5 && 6>= 2) );
		System.out.println( !true | 'a'> 'A' ); // 원래는 !true > 'A' 인데, 얘는 
		// 1. A랑 비교할 대상이 없기 때문에
		// 2. not true 하고 비교할 대상이 없기 때문에 결과값이 나오지 않는거야.
		System.out.println( 7 % 4 + 3 - 2 / 6 * 'Z' );
		System.out.println( 'D' + 1 + 'M' % 2 / 3 );
		System.out.println( 5.0 / 3 + 3 / 3 );
		System.out.println( 53 % 21 < 45 /18 );
		System.out.println( ( 4 < 6 ) || true && false && ( 2 > 3 ) );
		System.out.println( 7 - ( 3 + 8 * 6 + 3 ) - ( 2 + 5 * 2 ) );
		// 문자와 정수
		// 단일문자 저장시 char 형으로 선언
		// 하지만, 정수형으로 선언한 변수를 char형으로 변환하면 단일문자로 출력가능
		int a = 65;
		System.out.println( a );
		System.out.println( (char)a );
		// 이런 식으로 말이지.
		// 또한, char형으로 선언한 변수를 int형으로 변환하면 정수가 출력된다.
		char b = 'B';
		System.out.println( b );
		System.out.println( (int)b );
		// 이렇게 말이지.
		
		// int로 바뀌는 기준은 아스키코드값(ASCII)이 있다. 통신용 코드로 만들었지만 확장이 되면서 유니코드 체계로 변해서
		// 1~127까지는 영어와 특수문자로 고정이 되어 있다. 원노트에 보면 아스키 코드표 있어.
		System.out.println( 'A' + 1 );
		// 왜 66이 나온걸까?
		// 아스키 코드 덕분이지. 정상적인 연산이 가능해.
	}

}
